\section*{Introduction}
\addcontentsline{toc}{section}{Introduction}

Othello game, also called Reversi, is played by two players on a eight by eight board. Each player is represented by a color, either black or white. At the beginning of the game, each player has two disks, already placed in the middle of the board, as shown in the following picture :

\begin{figure}[h]
\center
\includegraphics[scale=0.7]{img/othello_ini}
\caption{Othello initial state.}
\end{figure}

Othello is a turn by turn game. At his turn, the player is supposed to place one of its disk - a new one - on the board following  one rule : it must capture at least one opponent disk. Pieces are captured when lying between two opponent disks, but only if one of those disks has just been played. If a player can't capture any piece at his turn, he must pass. The game ends when both player must pass.
\begin{figure}[h]
\center
\includegraphics[scale=0.7]{img/othello_tricky}
\caption{If Black plays in (5,A), (5,B) and (5,C) will be become black, but not (4,C).}
\end{figure}

The aim is to be the most represented color at the end of the game.

\vspace{0.7cm}
Our program must analyze a given state of the game, and determine an efficient action to do. It has to use the alpha-beta searching algorithm, with a sensible heuristic. Basically, alpha-beta algorithm is based on a graph representing possible moves and their consequences within a given depth. The heuristics is used to compute the utility of every action. Since our artificial intelligence  is supposed to beat one which only count the number of disks, our program is based on the disc count, player's mobility and the stability of discs. For better results, we also add a "strategy" dimension to the heuristic depending on how many disc was already played.\\ 

We choose to write this program in Java as it was recommended and a helper code was provided for this language.

\vspace{0.7cm}
In this report, we first present the algorithms we use. Then source code is explained, especially the issues we encountered. Finally some information about how to use and understand the program are given.